package com.yxx.business.service;

import java.util.List;

import com.yxx.common.core.domain.PageResult;
import com.yxx.business.entity.TbDemolitionPhaseDo;
import com.yxx.business.entity.TbDemolitionPhaseVo;
import com.yxx.business.entity.TbDemolitionPhaseQueryDto;
import com.yxx.business.entity.TbDemolitionPhaseEditDto;
import com.yxx.common.core.service.IServicePlus;

/**
 * 拆除处置阶段Service接口
 *
 * @author yxx
 * @date 2025-08-16
 */
public interface ITbDemolitionPhaseService extends IServicePlus<TbDemolitionPhaseDo>, PhaseService {

    /**
     * 查询拆除处置阶段分页结果
     *
     * @param tbDemolitionPhaseQueryDto 拆除处置阶段查询实体
     * @return 拆除处置阶段分页
     */
    public PageResult<TbDemolitionPhaseVo> selectTbDemolitionPhaseVoPage(TbDemolitionPhaseQueryDto tbDemolitionPhaseQueryDto);

    /**
     * 查询拆除处置阶段Vo列表
     *
     * @param tbDemolitionPhaseQueryDto 拆除处置阶段查询实体
     * @return 拆除处置阶段集合
     */
    public List<TbDemolitionPhaseVo> selectTbDemolitionPhaseVoList(TbDemolitionPhaseQueryDto tbDemolitionPhaseQueryDto);

    /**
     * 查询拆除处置阶段Do列表
     *
     * @param tbDemolitionPhaseQueryDto 拆除处置阶段查询实体
     * @return 拆除处置阶段集合
     */
    public List<TbDemolitionPhaseDo> selectTbDemolitionPhaseDoList(TbDemolitionPhaseQueryDto tbDemolitionPhaseQueryDto);

    /**
     * 查询单个拆除处置阶段
     *
     * @param demolitionId 拆除处置阶段主键
     * @return 拆除处置阶段单个
     */
    public TbDemolitionPhaseVo selectTbDemolitionPhaseVoByDemolitionId(Long demolitionId);

    /**
     * 新增拆除处置阶段
     *
     * @param tbDemolitionPhaseQueryDto 拆除处置阶段编辑实体
     * @return 结果
     */
    public int insertTbDemolitionPhase(TbDemolitionPhaseEditDto tbDemolitionPhaseQueryDto);

    /**
     * 修改拆除处置阶段
     *
     * @param demolitionId 主键
     * @param tbDemolitionPhaseQueryDto 拆除处置阶段编辑实体
     * @return 结果
     */
    public int updateTbDemolitionPhase(Long demolitionId, TbDemolitionPhaseEditDto tbDemolitionPhaseQueryDto);

    /**
     * 批量删除拆除处置阶段
     *
     * @param demolitionIds 拆除处置阶段主键集合
     * @return 结果
     */
    public int deleteTbDemolitionPhaseByDemolitionIds(List<Long> demolitionIds);

    /**
     * 删除单个拆除处置阶段信息
     *
     * @param demolitionId 拆除处置阶段主键
     * @return 结果
     */
    public int deleteTbDemolitionPhaseByDemolitionId(Long demolitionId);
}
